#include "AzRecordData.h"

#include "AzField.h"


//----------------------------------------------------------AzRecordData---------------------------------------------------------------

AzRecordData::AzRecordData(Az::RecordState state):mRecordState(state) {

}

AzRecordData::AzRecordData(const AzFieldList& src) {
    for (int i = 0; i < src.size(); ++i) {
        mData.append(src[i].type());
    }
}

AzRecordData::AzRecordData(const AzRecordData& src) {
    mData = src.mData;
    mOldData = src.mOldData;
    mRecordState = src.mRecordState;
}



/*!
 * \brief AzRecordData::insert Добавляет тип данных
 * \param i позиция
 * \param dataType тип данных
 * Если "старные" данные не заданы (равны 0), считается что их нет
 */
void AzRecordData::insert(int i,QVariant::Type dataType) {
    mData.insert(i,dataType);
    if (!mOldData.isEmpty())
        mOldData.insert(i,dataType);
}

bool AzRecordData::operator==(const AzFieldList& fields) const {
   if (size() != fields.size())
       return false;
   for (int i = 0; i < size();++i) {
    if (type(i) != fields.type(i))
        return false;
   }
   return true;
}



